"use strict"; !function() { if (window.avadv) { return; } var avadv = window.avadv = window.avadv || { num: 0, time: new Date(), list: [], current: null, noMobile: {'728x90':1,'120x600':1,'468x60':1,'125x125':1,'160x600':1,'0x0':1,'980x50':1,'6x6':1,'2x2':1}, unique: (new Date()).valueOf(), track: function(d) { if (typeof d == "number") d = avadv.list[d-1]; if (d.tracked) return; d.tracked = new Date() - avadv.time; var f = d.iframe; var bb = f.getBoundingClientRect(); d.x = Math.round(bb.left) + window.pageXOffset; d.y = Math.round(bb.top) + window.pageYOffset; if (console) console.info("avadv#%d: %s %s %dx%d", d.i, d.size, d.mode, d.x, d.y); d.args = [ "av_u="+d.user, "avadv=1", "expert="+window.ADX_label, "avadv_cnt="+d.i, "ac="+d.vars.gpt.adUnitPath, "sz="+screen.width+"x"+screen.height, ]; for (var k in window) if (k.search(/^avadv_\w+$/) == 0) d.args.push(k+'='+window[k]); f.src = "//"+d.dom+"/iframe.ad/"+d.ipc+"/x="+d.x+"/y="+d.y+"/f="+(window.parent == window.self ? 0 : 1)+"/pe=0/"+d.args.join("/"); if (d.mode == 1) { f.setAttribute("width", d.w); f.setAttribute("height", d.h); f.style.width = d.w+"px"; f.style.height = d.h+"px"; f.style.display = ""; } }, iframe: function(d, u) { var p = { avadv: "avadv-"+d.i, marginwidth: "0", marginheight: "0", frameborder: "0", scrolling: "no", width: "0", height: "0", style: "width:0px;height:0px;border:0px;display:block" }; if (u) { p.src = u; p.width = d.w; p.height = d.h p.style = 'width:'+d.w+'px;height:'+d.h+'px;border:0px'; } var el = document.createElement("iframe"); for (var i in p) el.setAttribute(i, p[i]); d.append.unshift(el); d.iframe = el; }, push: function(w,h,u,o,d,i,g,m,p,a,t,e) { e = e || document.currentScript || (function(){ var s = "//ad.altervista.org/js"+(m == 3 ? "2" : "")+".ad/size="+w+"X"+h+"/"; var ss = document.scripts; main: for (var i = 0; i < ss.length; i++) { var e = ss[i]; if (e.src.indexOf(s) == -1) continue; for (var j = 0; j < avadv.list.length; j++) { if(avadv.list[j].el == e) continue main; } return e; } })(); var d = { i: ++avadv.num, error: false, w: w, h: h, x: 0, y: 0, user: u, dom: d, ipc: i, size: w+"x"+h, group: g, mode: m, tracked: null, ppc: !!p, trusted: false, el: e, iframe: null, append: [], vars: {dart_z:"circuiti",oop:false,track:true,uberTrusted:false,gpt:{},tag:t}, }; avadv.list.push(d); avadv.current = d; if (!u) { d.error = true; } if (!d.error) avadv.iframe(d); d.displayed = documentReady. then(function(){return avadv.checkRules(d)}). then(avadv.display); }, checkRules: function(d) { d.vars.gpt.format = d.vars.gpt.format || (d.vars.oop ? "OUT_OF_PAGE" : "DISPLAY"); if (!d.vars.gpt.adUnitPath) { d.vars.gpt.adUnitPath = "/4758/altervista/" + d.vars.dart_z; } if (d.error || avadv.device == "smartphone" && avadv.noMobile[d.size]) { d.mode = -1; } else if (!d.vars.uberTrusted && d.mode != 3) { return getExpert().then(function(x){ if (/BrandProtection(Soft|Hard)/.test(x)) { d.mode = -1; } return d; }); } return Promise.resolve(d); }, display: function(d) { var ret; for (var i = 0; i < d.append.length; i++) avadv._elementAppend(d, d.append[i]); if (d.mode == 0) { if (d.vars.pwt) { d.vars.track = false; ret = displayPwt(d); ret.then(function() { avadv.track(d); }); } else if (d.callback) { ret = d.callback(d); } } else if (d.mode == 2) { var gptSlotPromise = initGptSlot(d); ret = displayGptSlot(d); if (d.vars.track) { ret.then(function() { avadv.track(d); }); } } if (d.mode >= 0 && d.mode != 2) { if (d.vars.track) avadv.track(d); } if (d.mode == -1) { ret = Promise.reject(); } if (d.mode == 3) { ret = displayAdsense(d); } return ret; }, setCallback: function(f) { avadv.list[avadv.num-1].callback = f; }, pushHTML: function(s) { var div = document.createElement("div"); div.innerHTML = s; avadv.current.append.unshift(div.firstChild); }, pushScript: function(src) { var script = document.createElement("script"); script.type = "text/javascript" script.src = src; avadv.current.append.unshift(script); }, pushVars: function(v) { for (var i in v) avadv.current.vars[i] = v[i]; }, loadScript: function(src) { var el = document.createElement("script"); el.src = src; document.head.appendChild(el); return whenLoaded(el); }, adKaoraLibraryReady: undefined, loadAdKaoraLibrary: function (src, params) { if (avadv.adKaoraLibraryReady != undefined) { return avadv.adKaoraLibraryReady; } avadv.adKaoraLibraryReady = new Promise(function(resolve) { if (!src) { throw new Error('Invalid source'); } var controller = new AbortController(); window.addEventListener("adkInteractionsEvents", (event) => { if (event && event.detail.adkOnDemandPromisesCreated) { resolve(); controller.abort(); } }, {signal: controller.signal}); var script = document.createElement("script"); script.src = src; if (typeof params === 'object') { for (var entry of Object.entries(params)) { script.dataset[entry[0]] = entry[1]; } } document.head.appendChild(script); }); return avadv.adKaoraLibraryReady; }, _elementAppend: function(item, el) { if (typeof item == "number") item = avadv.list[item]; if (item.el.nextSibling) { item.el.parentNode.insertBefore(el, item.el.nextSibling); } else { item.el.parentNode.appendChild(el); } }, device: (function() { var w = screen.width, h = screen.height, a = navigator.userAgent; var m = a.match(/\S+ \((.+?)\)/); var s = m[1].split(';'); var t; if (s[0].search(/WindowsNT|Macintosh|X11|FreeBSD/) > -1) { t = 'desktop'; } else if (s[0].search(/iPhone|iPod|Symbian|Tizen|BlackBerry|Bada|Maemo|MeeGo|S60|Series40|Series60|J2ME\/MIDP|Nintendo|WindowsMobile/) > -1) { t = 'smartphone'; } else if (s[0].search(/iPad/) > -1) { t = 'tablet'; } else if (s[0].search(/Android|Mobile|WindowsPhone/) > -1 || (s[0].search(/Linux/) > -1 && s[1].search(/Android/) > -1)) { if (s[1].search(/Table/) > -1) { t = 'tablet'; } else if (s[1].search(/Mobile/) > -1) { t = 'smartphone'; } else if (w < 550) { t = 'smartphone'; } else if (w > 1024) { t = 'desktop'; } else { t = 'tablet'; } } else { t = 'desktop'; } return t; })() } var GROUP_ADSENSE_HOST_CHANNEL_MAP = { "1": { "altervista": "2891735766", "blog.giallozafferano.it": "7983160788", "blog.giallozafferano.com": "1387082409", "blog.cookaround.com": "5134755728", "blog.pianetamamma.it": "1195510717", "blog.soldionline.it": "4943184039", "blog.zingarate.it": "3630102369", }, // AllSilver "118": "9296242459", // AvGold "140": "9265572426", // AvPlatinum "143": "6639409089", // AvMarcoPolo "119": "5326327414", // GzGold "124": "4013245740", // GzPlatinum "145": "5356997446", // GzMarcoPolo "148": "9074000734", // GzEnGold "149": "7760919067", // GzEnPlatinum "150": "6447837396", // GzEnMarcoPolo "122": "2730834106", // CookGold "127": "4699092715", // CookPlatinum "146": "2508592381", // CookMarcoPolo "121": "1417752438", // PmGold "126": "8882429042", // PmPlatinum "147": "7569347378", // PmMarcoPolo "144": "7217993584", // PdMarcoPolo "138": "9104670760", // SoldiGold "123": "2317020691", // ZingaGold "142": "5904911915", // ZingaPlatinum "129": "4591830245", // EngSilver "130": "3278748574", // EngGold "93": "1965666902", // woAVB "other": "3438530670", }; function getAdvGroupHostChannel(group) { if (!hasOwn(GROUP_ADSENSE_HOST_CHANNEL_MAP, group)) { return GROUP_ADSENSE_HOST_CHANNEL_MAP["other"]; } var channel = GROUP_ADSENSE_HOST_CHANNEL_MAP[group]; if (typeof channel === "string") { return channel; } var hostname = window.location.hostname; if (hasOwn(channel, hostname)) { return channel[hostname] } return channel["altervista"]; } function displayAdsense(d) { var advGroupHostChannel = getAdvGroupHostChannel(d.group); var autoAdsHostChannels = [ advGroupHostChannel, "5270325399", // auto ads (adserver) ]; var client = d.vars.google_ad_client; return loadAdsbygoogleJs(client, autoAdsHostChannels). then(function(adsbygoogle){ var el = document.createElement("ins"); el.style.display = "inline-block"; el.style.width = d.w+"px"; el.style.height = d.h+"px"; el.className = "adsbygoogle"; avadv._elementAppend(d, el); var hostChannels = [ advGroupHostChannel, "2078019990", // js2.ad (adserver) ]; var params = { "google_ad_client": client, "google_ad_host": ADSENSE_HOST, "google_ad_host_channel": serializeChannels(hostChannels), }; adsbygoogle.push({element: el, params}); }); } function displayPwt(d) { var slotEl = document.createElement("div"); slotEl.id = "avadv-pwt-"+d.i; avadv._elementAppend(d, slotEl); var slotInfo = { sizes: d.vars.pwt.sizes, adUnitPath: d.vars.pwt.adUnitPath, slotElement: slotEl, }; return fetchPwtBids(slotInfo).then(function(bidResult) { if (!hasOwn(bidResult, "pwtsid")) { throw undefined; } var iframe = document.createElement("iframe"); iframe.style = "border:0"; iframe.scrolling = "no"; iframe.marginWidth = 0; iframe.marginHeight = 0; slotEl.appendChild(iframe); return getPwt().then(function(PWT) { return PWT.displayCreative(iframe.contentDocument, bidResult.pwtsid); }); }); } var slotItemMap = new WeakMap(); function initGptSlot(d) { var sizes = d.vars.size ? [d.vars.size] : [[d.w, d.h]]; if (d.vars.size_alt) { if (d.vars.size_alt[0] instanceof Array) { for (var j = 0; j < d.vars.size_alt.length; j++) sizes.push(d.vars.size_alt[j]); } else { sizes.push(d.vars.size_alt); } } var slotEl = null; if (d.vars.gpt.format !== "INTERSTITIAL") { slotEl = document.createElement("div"); slotEl.id = "avadv-gpt-" + d.i; avadv._elementAppend(d, slotEl); } var gptInfo = { sizes: sizes, adUnitPath: d.vars.gpt.adUnitPath, slotElement: slotEl, }; d.gpt = gptInfo; gptInfo.slotPromise = getGoogletag().then(function(googletag) { setupGptListeners(); var slot; if (d.vars.gpt.format === "OUT_OF_PAGE") { slot = googletag.defineOutOfPageSlot(gptInfo.adUnitPath, gptInfo.slotElement.id); } else if (d.vars.gpt.format === "INTERSTITIAL") { slot = googletag.defineOutOfPageSlot(gptInfo.adUnitPath, googletag.enums.OutOfPageFormat.INTERSTITIAL); } else { slot = googletag.defineSlot(gptInfo.adUnitPath, gptInfo.sizes, gptInfo.slotElement.id); } slot.addService(googletag.pubads()); googletag.pubads().disableInitialLoad(); googletag.enableServices(); googletag.display(slot); if (d.vars.safeFrame) { slot.setForceSafeFrame(true); slot.setSafeFrameConfig(d.vars.safeFrame); } slotItemMap.set(slot, d); return slot; }); return gptInfo.slotPromise; } function displayGptSlot(d, i) { i = Object_assign({refreshCount: 0}, i); var bidResultPromises = [ d.vars.headerBidding && fetchApsBids(d.gpt), d.vars.headerBidding && fetchPwtBids(d.gpt), ]; var expertTargetingParamPromise = getExpert().then(function(expert) { return {ADX: expert}; }); return d.gpt.slotPromise.then(function(slot){ var googletag = window.googletag; var targetingParamsPromises = [].concat( d.vars.gpt.targetingParams, bidResultPromises.map(function(targetingParamsPromise) { return timeoutPromise(2000, targetingParamsPromise). catch(function() { }); }), expertTargetingParamPromise, ); Promise.all(targetingParamsPromises).then(function(targetingParamsList) { var urlWithoutWwwProtocol = window.location.href.replace(/^https?:\/\/(www\.)?/, ""); var baseTargetingParams = { purl: urlWithoutWwwProtocol.replace(/\?refresh|\?utm_source=Zemanta&utm_medium=referral/g, "").replace(/[/=!+*#^~;()[\]"'<>]/g, "_"), keywordURL: urlWithoutWwwProtocol.split(/[-/?]/).filter(Boolean), tassonomia: getPermutiveTaxonomies(), }; var trackingTargetingParams = { dvc: avadv.device, arf: String(i.refreshCount), }; var targetingParams = {}; targetingParamsList.forEach(function(p) {Object_assign(targetingParams, p);}); Object_assign(targetingParams, baseTargetingParams, trackingTargetingParams); slot.clearTargeting(); slot.updateTargetingFromMap(targetingParams); var lazyloadConfig = d.vars.gpt.lazyload || { fetchMarginPercent: -1, renderMarginPercent: -1, mobileScaling: 1, }; googletag.pubads().enableLazyLoad(lazyloadConfig); googletag.pubads().refresh([slot]); }); if (d.vars.gpt.format === "INTERSTITIAL") { return new Promise(function(res, rej) { googletag.pubads().addEventListener("impressionViewable", function(e) { if (e.slot != slot) return; res(); }); googletag.pubads().addEventListener("slotRenderEnded", function(e) { if (e.slot != slot) return; if (e.isEmpty) { rej(); } }); }); } return new Promise(function(res, rej) { googletag.pubads().addEventListener("slotRenderEnded", function(e) { if (e.slot != slot) return; if (!e.isEmpty) { res(); } else { rej(); } }); }); }); } var setupGptListeners = once(function() { var googletag = window.googletag; var slotRefreshCountMap = new WeakMap(); googletag.pubads().addEventListener("impressionViewable", function(e) { var slot = e.slot; var d = slotItemMap.get(slot); if (!d || !d.vars.autoRefresh) { return; } var refreshCount = slotRefreshCountMap.get(slot) || 0; if (refreshCount >= 10) { return; } setTimeout(function() { whenVisible(d.gpt.slotElement).then(function() { refreshCount++; slotRefreshCountMap.set(slot, refreshCount); displayGptSlot(d, {refreshCount: refreshCount}); }); }, 30000); }); }); var visibilityTargetCallbackMap = new Map(); var intersectionObserver; if (window.IntersectionObserver) { intersectionObserver = IntersectionObserver && new IntersectionObserver(function(entries) { if (!document.hasFocus()) { return; } entries.forEach(function(entry) { if (!entry.intersectionRatio >= 0.5) { return; } var target = entry.target; var callback = visibilityTargetCallbackMap.get(target); intersectionObserver.unobserve(target); visibilityTargetCallbackMap.delete(target); callback && callback(); }); }, {threshold: [0.5]}); window.addEventListener("blur", function(e) { visibilityTargetCallbackMap.forEach(function(callback, target) { intersectionObserver.unobserve(target); }); }); window.addEventListener("focus", function(e) { visibilityTargetCallbackMap.forEach(function(callback, target) { intersectionObserver.observe(target); }); }); } function whenVisible(target) { return new Promise(function(resolve) { if (!intersectionObserver) { return; } visibilityTargetCallbackMap.set(target, resolve); if (document.hasFocus()) { intersectionObserver.observe(target); } }); } var Object_assign = Object.assign || function(target) { target = Object(target); for (var i = 1; i < arguments.length; i++) { var o = arguments[i]; if (o == null) { continue; } for (var p in o) { if (!hasOwn(o, p)) { continue; } target[p] = o[p]; } } }; var hasOwn = Object.hasOwn || function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); } function timeoutPromise(timeout, promise) { var p = new Promise(function(res, rej){ var t = setTimeout(rej, timeout); }); return Promise.race([promise, p]); } function once(fn) { var result; var evaluated = false; return function() { if (evaluated) { return result; } result = fn(); evaluated = true; fn = null; return result; } } function getPermutiveTaxonomies() { try { return Array.from(new Set( window.permutive.context.watson.taxonomy. flatMap(function(x) {return x.label.split("/");}). filter(Boolean) )); } catch (e) { return null; } } var getExpert = once(function() { var getAdmantxData = window.avadvGetAdmantxData; if (typeof getAdmantxData === "function") { try { return timeoutPromise(2500, getAdmantxData()).then(function(_){return _.label.join(",");}, function(){return undefined;}); } catch (e) {} } var ADX_query = { key: "69abaf6b2f7ca5773c43d4f4659194c6e187d375e984ac967929bcd50f0670bc", method: "descriptor", filter: "default", decorator: "template.altervista", type: "URL", mode: "async", body: location.href, }; var script = avadv.loadScript("//euasync01.admantx.com/admantx/service?request="+encodeURIComponent(JSON.stringify(ADX_query))); return timeoutPromise(2500, script). then(function(){return window.ADX_label},function(){return undefined}); }); function fetchApsBids(slotInfo) { return getAps().then(function(apstag) { return new Promise(function(res, rej) { apstag.fetchBids({ slots: [{ slotID: slotInfo.slotElement.id, slotName: slotInfo.adUnitPath, sizes: slotInfo.sizes, }], timeout: 10000, }, res); }).then(function(bidsData) { var targetingParams = {}; apstag.targetingKeys().forEach(function(key) { targetingParams[key] = bidsData[0][key]; }); return targetingParams; }); }); } var getAps = once(function() { var script = avadv.loadScript("https://c.amazon-adsystem.com/aax2/apstag.js"); return Promise.all([script, getTCData()]). then(function() { return new Promise(function(res, rej) { window.apstag.init({ pubID: "3651", adServer: "googletag", }, function(){res(window.apstag)}); }); }); }); var pwtAdUnitIndex = 0; function fetchPwtBids(slotInfo) { return getPwt().then(function(PWT) { return new Promise(function(res, rej) { PWT.requestBids([{ code: slotInfo.slotElement.id, divId: slotInfo.slotElement.id, adUnitId: slotInfo.adUnitPath, adUnitIndex: String(pwtAdUnitIndex), mediaTypes: { banner: { sizes: slotInfo.sizes, }, }, }], res); pwtAdUnitIndex++; }).then(function(responses) { var targetingParams = responses[0].bidData.kvp; return targetingParams; }); }); } function getPwtProfile(profile) { window.PWT = window.PWT || {}; var pwtPromise = new Promise(function(res, rej) { window.PWT.jsLoaded = function() { return res(window.PWT); }; }); var script = avadv.loadScript("//ads.pubmatic.com/AdServer/js/pwt/76492/" + profile + "/pwt.js"); return Promise.all([script, getTCData()]). then(function(){return pwtPromise}); } var getPwt = once(function() { return checkConsentForGoogleAdServing().then(function() { if (avadv.device == "smartphone") { return 2315; } return 2220; }, function() { if (avadv.device == "smartphone") { return 7134; } return 7133; }).then(function(profile){ return getPwtProfile(profile); }); }); var getGoogletag = once(function() { window.googletag = window.googletag || {}; googletag.cmd = googletag.cmd || []; return checkConsentForGoogleAdServing().then(function() { avadv.loadScript("https://securepubads.g.doubleclick.net/tag/js/gpt.js"); return new Promise(function(res,rej){ googletag.cmd.push(function(){res(googletag)}); }); }); }); var ADSENSE_HOST = "ca-host-pub-3881938158959979"; var adsbygoogleJsLoadedPromise = null; function loadAdsbygoogleJs(client, hostChannels) { if (adsbygoogleJsLoadedPromise) { return adsbygoogleJsLoadedPromise; } window.adsbygoogle = window.adsbygoogle || []; adsbygoogleJsLoadedPromise = checkConsentForGoogleAdServing(). then(function() { var script = document.createElement("script"); script.crossOrigin = "anonymous"; script.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"; script.dataset.adClient = client; script.dataset.adHost = ADSENSE_HOST; script.dataset.adHostChannel = serializeChannels(hostChannels); document.head.appendChild(script); return whenLoaded(script); }). then(function() { return window.adsbygoogle; }); return adsbygoogleJsLoadedPromise; } function serializeChannels(channels) { return channels.filter(Boolean).join("+"); } !function(w, h, t, i, k, q, g) { w.adsbygoogle = w.adsbygoogle || []; function j() { i = 0; q = document.querySelectorAll("ins.adsbygoogle[data-ad-client]"); while (g = q[i++]) { if (g.dataset.adHost !== h) { g.dataset.adHost = h; g.dataset.adHostChannel = "8699230676"; } } } function c(a) { t = a || w.adsbygoogle; k = t.push; t.push = function(a) { if (g = a.element) { q = a.params = a.params || {}; if (q.google_ad_host !== h && g.dataset.adHost !== h) { q.google_ad_host = h; q.google_ad_host_channel = "5670291391"; } return k.call(t, a); } j(); return k.call(t, a); }; Object.defineProperty(t, "push", {configurable: 0, value: t.push, writable: 0}); } try { j(); c(); Object.defineProperty(w, "adsbygoogle", {configurable: 0, get: function(a) {return t;}, set: function(a) {t !== a && c(a)}}); } catch (e) { } }(window, ADSENSE_HOST); function callTcfApi() { var args = Array.prototype.slice.apply(arguments); args.splice(1, 0, 2); self.__tcfapi.apply(self, args); } var tcfApi = { addEventListener: function(callback) { callTcfApi("addEventListener", callback); }, removeEventListener: function(listenerId) { return new Promise(function(resolve, reject) { callTcfApi( "removeEventListener", function(success) { return success ? resolve() : reject(); }, listenerId ); }); }, }; var getTCData = coalesce(function() { return documentReady.then(function() { return new Promise(function(resolve, reject) { if (typeof(window.__tcfapi) !== "function") { throw new Error("__tcfapi function missing"); } tcfApi.addEventListener(callback); function callback(tcData, success) { if (!success) { reject(); return; } var status = tcData.eventStatus; if (status !== "tcloaded" && status !== "useractioncomplete") { return; } resolve(tcData); tcfApi.removeEventListener(tcData.listenerId); } }); }); }); var CONSENT_REQUIRED = "CONSENT_REQUIRED"; var LEGITIMATE_INTEREST_REQUIRED = "LEGITIMATE_INTEREST_REQUIRED"; var FLEXIBLE_CONSENT_REQUIRED = "FLEXIBLE_CONSENT_REQUIRED"; var FLEXIBLE_LEGITIMATE_INTEREST_REQUIRED = "FLEXIBLE_LEGITIMATE_INTEREST_REQUIRED"; var RESTRICTION_NOT_ALLOW = 0; var RESTRICTION_REQUIRE_CONSENT = 1; var RESTRICTION_REQUIRE_LEGITIMATE_INTEREST = 2; var RESTRICTION_NONE = "RESTRICTION_NONE"; function getUnsatisfiedConsentRequirements(tcData, purposeRequirements, vendorId) { var restrictions = tcData.publisher.restrictions; var unsatisfiedRequirements = []; for (var purposeId in purposeRequirements) { if (!hasOwn(purposeRequirements, purposeId)) { continue; } var requirement =purposeRequirements[purposeId]; var fixedRequirement = applyRequirementRestrictions(requirement, getPublisherRestriction(restrictions, purposeId, vendorId)); if (!(fixedRequirement && vendorSatisfiesFixedRequirement(tcData, vendorId, purposeId, fixedRequirement))) { unsatisfiedRequirements.push({purposeId: purposeId, unsatisfiedRequirement: requirement, unsatisfiedRestrictedRequirement: fixedRequirement}); continue; } } if (unsatisfiedRequirements.length === 0) { return null; } return unsatisfiedRequirements; } var FLEXIBLE_FIXED_MAP = { "CONSENT_REQUIRED": { "RESTRICTION_NONE": CONSENT_REQUIRED, "1": CONSENT_REQUIRED, "2": null, }, "LEGITIMATE_INTEREST_REQUIRED": { "RESTRICTION_NONE": LEGITIMATE_INTEREST_REQUIRED, "1": null, "2": LEGITIMATE_INTEREST_REQUIRED, }, "FLEXIBLE_CONSENT_REQUIRED": { "RESTRICTION_NONE": CONSENT_REQUIRED, "1": CONSENT_REQUIRED, "2": LEGITIMATE_INTEREST_REQUIRED, }, "FLEXIBLE_LEGITIMATE_INTEREST_REQUIRED": { "RESTRICTION_NONE": LEGITIMATE_INTEREST_REQUIRED, "1": CONSENT_REQUIRED, "2": LEGITIMATE_INTEREST_REQUIRED, }, }; function applyRequirementRestrictions(requirement, purposeRestriction) { if (purposeRestriction === RESTRICTION_NOT_ALLOW) { return null; } return FLEXIBLE_FIXED_MAP[requirement][purposeRestriction]; } function getPublisherRestriction(restrictions, purposeId, vendorId) { var purposeRestrictions = restrictions[purposeId]; if (!purposeRestrictions) { return RESTRICTION_NONE; } var vendorPurposeRestriction = purposeRestrictions[vendorId]; if (vendorPurposeRestriction == null) { return RESTRICTION_NONE; } return vendorPurposeRestriction; } var FIXED_REQUIREMENT_KEY_MAP = { "CONSENT_REQUIRED": "consents", "LEGITIMATE_INTEREST_REQUIRED": "legitimateInterests", }; function vendorSatisfiesFixedRequirement(tcData, vendorId, purposeId, requirement) { var key = FIXED_REQUIREMENT_KEY_MAP[requirement]; return tcData.purpose[key][purposeId] === true && tcData.vendor[key][vendorId] === true; } var GOOGLE_AD_SERVING_MODE_PERSONALIZED = {}; var GOOGLE_AD_SERVING_MODE_NONPERSONALIZED = {}; var GOOGLE_AD_SERVING_MODE_NOADS = {}; var GOOGLE_VENDOR_ID = 755; var GOOGLE_NONPERSONALIZED_SERVING_PURPOSE_REQUIREMENTS = { 1: CONSENT_REQUIRED, 2: FLEXIBLE_LEGITIMATE_INTEREST_REQUIRED, 7: FLEXIBLE_LEGITIMATE_INTEREST_REQUIRED, 9: FLEXIBLE_LEGITIMATE_INTEREST_REQUIRED, 10: FLEXIBLE_LEGITIMATE_INTEREST_REQUIRED, }; var checkConsentForGoogleAdServing = coalesce(function() { return getTCData().then(function(tcData) { if (tcData.isServiceSpecific !== true) { throw new Error("Invalid consent data: isServiceSpecific !== true"); } var unsatisfiedRequirements = getUnsatisfiedConsentRequirements( tcData, GOOGLE_NONPERSONALIZED_SERVING_PURPOSE_REQUIREMENTS, GOOGLE_VENDOR_ID ); if (unsatisfiedRequirements) { var map = { "CONSENT_REQUIRED": "consent", "FLEXIBLE_LEGITIMATE_INTEREST_REQUIRED": "legitimate interest or consent", }; var message = "missing required " + unsatisfiedRequirements. map(function(_) { return map[_.unsatisfiedRequirement] + " for purpose #" + _.purposeId; }). join(", ") + " for Google"; throw new Error("Unable to request Google ads: " + message); } }); }); function coalesce(fn) { var promise; function resetOnSettled() { promise.catch(function() {}).then(function() { promise = null; }); } return function() { if (promise) { return promise; } promise = fn.call(this); resetOnSettled(); return promise; }; } function whenLoaded(target) { return new Promise(function(resolve, reject) { function callback(event) { if (event.type === "load") { resolve(); } else { reject(); } target.removeEventListener("load", callback); target.removeEventListener("error", callback); } target.addEventListener("load", callback); target.addEventListener("error", callback); }); } var documentReady = new Promise(function(res) { if (document.readyState != "loading" && !document.documentElement.doScroll || document.readyState == "complete") res(); document.addEventListener("DOMContentLoaded", res, false); addEventListener("load", res, false); }); }(); avadv.push(728, 90, "bugotin", "4177526", "st31.altervista.org", 75094328, 1, 2, 0, 0, ""); var av_adsense_flag = 0; avadv.pushVars({dart_z:"circuiti2"});